Situations exist where a client device retrieves a content item and performs an action that is desirous to log or otherwise track. One known method of tracking is through the use of an “image beacon,” which is a typically a clear 1×1 pixel image that the client requests from a server, e.g., via an HTTP Get request of a URL of the form http://loggingserver.example.com/1.gif?data-to-be-logged. One or more parameters are passed to the server in conjunction with the image request, thereby allowing the server to collect data regarding the client that is requesting the image and perform the requested action.
In order to receive the 1×1 pixel image in response to an image request, the client first makes a request to the domain name server that the client is configured to use, which may be the domain name server on the local network of the client, to resolve the address of the server that is hosting the image. The domain name system (“DNS”) is the way in which a textual host name for a device on an Internet Protocol (“IP”) network is translated into a numeric IP address. A domain name, which has a corresponding IP address, is a meaningful and easy-to-remember “handle” for an IP address, e.g. the host www.exampledomain.com may translate in the IP address 192.0.1.103. A given DNS server in communication with the client, which is arranged in a hierarchy with other DNS servers, maps a domain name in a client request to an IP address (also referred to as resolving the address). If address resolution information is not available at the given DNS server, thereby rendering the given DNS server unable to resolve the domain name, the given DNS sever forwards the request from the client to other DNS servers on the Internet that are higher up in the hierarchy.
If the given DNS server is unable to resolve the request from the client, an authoritative DNS server for the domain to which the client request is directed receives the request. The authoritative DNS server for the domain returns the IP address for the server to which the client request is directed back to the client. The client in turn uses the resolved IP address to request the 1×1 pixel image from the server pointed to by the resolved IP address.
The client utilizes the Transmission Control Protocol layered over Internet Protocol (“TCP/IP”) to transmit the request to the server and receive the resultant image. TCP makes use of a three step “handshake” before a client passes the request to the server to return the image: the communication channel is opened by the client sending a synchronize packet (“SYN”) to the server; the server replies with a synchronize acknowledgement (“SYN-ACK”) and the client sends an acknowledgment packet (“ACK”) back to the server. During the handshake process, the client and server exchange an initial sequence number wherein the sequence number identifies the order of the bytes sent from each computer so that the data transferred is in order regardless of any fragmentation or reordering that occurs during transmission. The handshake process and sequence numbers provide for: error-free data transfer, ordered data transfer, retransmission of lost packets, discarding of duplicate packets and congestion throttling
After the handshake process, the client and server are capable of exchanging data. The client transmits the request for the 1×1 pixel image to the server identified by the resolved IP address. The server receives the request and logs any data that accompanies the image request, transmitting a 1×1 pixel gif in response to the request. Using this architecture to capture information regarding a client, a client must implement a call to DNS for hostname resolution and then implement a TCP connection to the a server that is hosting the 1×1 pixel image, the image request being the mechanism by which the server captures information regarding the client.
As can be seen from the foregoing discussion, a significant amount of overhead is incurred in the transmission of a small amount of data, resulting in a number of drawbacks to using the described architecture for client monitoring. First, there is what is referred to as a “race condition” whereby a multithreaded browser operating on a client may receive a request to navigate away from a given content item before the process of 1) resolving the address of the server hosting the image and 2) requesting the image and receiving the result. This race condition is further magnified by packet loss and network latency, both of which increase the amount of time necessary to complete the image request transaction. Packet loss also causes the TCP protocol to wait prior to the retransmission of a given packet of data.
There is therefore a need in the art for systems and methods that provide a tracking beacon that is “fire and forget,” whereby the complexities of TCP/IP are eliminated while providing a more favorable user experience in the form of faster navigation.